package cn.itcast.web.controller.stat;

import cn.itcast.service.stat.StatService;
import cn.itcast.web.controller.BaseController;
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/stat")
public class StatController extends BaseController {

    @Reference
    private StatService statService;

    /*
        作用：进入对应的报表页面
        url:  /stat/toCharts.do?chartsType=factory
        参数：对应报表页面类型
        返回值： 对应的报表页面
     */
    @RequestMapping("/toCharts.do")
    public  String toCharts(String chartsType){
        return "stat/stat-"+chartsType;
    }


    /*
     作用：提供厂家的销售额数据
     url:  /stat/getFactoryData.do
     参数：无
     返回值： 厂家的销售额json数据
  */
    @RequestMapping("/getFactoryData.do")
    @ResponseBody
    public   List<Map<String, Object>> getFactoryData(String chartsType){
        List<Map<String, Object>> list = statService.getFactoryData(getLoginCompanyId());
        return list;
    }

    /*
    作用：统计产品的销售额
    url: /stat/getSellData.do
    参数：无
    返回数据： 统计产品的销售额
 */
    @RequestMapping("/getSellData")
    @ResponseBody
    public List<Map<String,Object>> getSellData(){
        return statService.getSellData(getLoginCompanyId());
    }


    /*
      作用：统计每小时访问人数
      url: /stat/getOnlineData.do
      参数：无
      返回数据： 统计每小时访问人数
   */
    @RequestMapping("/getOnLineData")
    @ResponseBody
    public List<Map<String,Object>> getOnLineData(){
        return statService.getOnLineData();
    }

    /*
      作用：统计厂家数量
      url: /stat/getFactoryNumber.do
      参数：无
      返回数据： 厂家地域数量
   */
    @RequestMapping("/getFactoryNumber")
    @ResponseBody
    public List<List<Map<String,Object>>> getFactoryNumber(){
        return statService.getFactoryNumber();
    }

}
